home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / dev / mui / mui38dev_bb2.lha / EFMUILib / Examples / EFMenus.asc < prev    next >
Text File  |  1997-12-14  |  9KB  |  273 lines

  1. ;(EF) Menus MUI example
  2. ;(c)1994 by Stefan Stuntz
  3. ;(c)1997 by Vivid Imagination
  4. ;
  5. ;Please note : strange characters instead of shortcuts in SubItem
  6. ;are due to a bug into RIGTMenuLib, not into EFMUILib.
  7. ;
  8.  
  9. WBStartup
  10.  
  11. ;** MUI still supports the use of a conventional gadtools NewMenu structure
  12. ;** to define a menu strip. The address of this structure is passed to a
  13. ;** MUI_MakeObject(MUIO_MenustripNM,newmenu,0) function which creates a complete
  14. ;** object tree for this menu and returns a pointer to the menustrip object,
  15. ;** This pointer should be placed in a windows MUIA_Window_Menustrip attribute
  16. ;** or in an applications MUIA_Application_Menustrip attribute, in which case
  17. ;** all windows will inherit the menu. To get direct access to the menu item
  18. ;** objects of such an auto generated tree, you can use the MUIM_FindUserData
  19. ;** method.
  20. ;**
  21. ;** You can of course create the menu object tree yourself by defining
  22. ;** a menu strip object with some menu object children with some menu
  23. ;** item object children with optionally some more menu item object
  24. ;** children. In this case, use the MUI_MakeObject(MUIO_Menuitem,...)
  25. ;** call to create the menu items if possible.
  26. ;**
  27. ;** The main program shows some different methods how to create items and
  28. ;** how to react on menu items. Choose the one you like best, and don't
  29. ;** forget the MUIM_CallHook method if you dislike switch/case in the
  30. ;** main loop!
  31.  
  32.  
  33. #RB=#CHECKIT
  34. #TG=#CHECKIT|#MENUTOGGLE
  35.  
  36. #MEN_PROJECT=1
  37.   #MEN_ABOUT=2
  38.   #MEN_QUIT=3
  39.  
  40. #MEN_EDIT=4
  41.   #MEN_CUT=5
  42.   #MEN_COPY=6
  43.   #MEN_PASTE=7
  44.  
  45. #MEN_SETTINGS=8
  46.   #MEN_HARDWARE=9
  47.     #MEN_A1000=10
  48.     #MEN_A2000=11
  49.     #MEN_A3000=12
  50.     #MEN_A4000=13
  51.   #MEN_SOFTWARE=14
  52.     #MEN_MUI=15
  53.     #MEN_MFR=16
  54.     #MEN_MWB=17
  55.     #MEN_DFA=18
  56.  
  57. #ID_ADD=19
  58. #ID_REM=20
  59. #ID_RADIO=21
  60. #ID_TOG=22
  61.  
  62. GTMenuTitle 0,0,"Project"
  63. GTMenuItem  0,0,0,0,"About","?",0,#MEN_ABOUT
  64. GTMenuItem  0,0,0,1
  65. GTMenuItem  0,0,0,2,"Quit","Q",0,#MEN_QUIT
  66.  
  67. GTMenuTitle 0,1,"Edit"
  68. GTMenuItem  0,0,1,0,"Cut","X",0,#MEN_CUT
  69. GTMenuItem  0,0,1,1,"Copy","C",0,#MEN_COPY
  70. GTMenuItem  0,0,1,2,"Paste","V",0,#MEN_PASTE
  71.  
  72. GTMenuTitle 0,2,"Settings"
  73. GTMenuItem  0,#NM_ITEMDISABLED,2,0,"Hardware","",0,#MEN_HARDWARE
  74. GTSubItem   0,#RB|#CHECKED,2,0,0,"A1000","1",2|4|8,#MEN_A1000
  75. GTSubItem   0,#RB,2,0,1,"A2000","2",1|4|8,#MEN_A2000
  76. GTSubItem   0,#RB,2,0,2,"A3000","3",1|2|8,#MEN_A3000
  77. GTSubItem   0,#RB,2,0,3,"A4000","4",1|2|4,#MEN_A4000
  78. GTMenuItem  0,#NM_ITEMDISABLED,2,1,"Software","",0,#MEN_SOFTWARE
  79. GTSubItem   0,#TG,2,1,0,"MUI","M",0,#MEN_MUI
  80. GTSubItem   0,#TG,2,1,1,"MFR","F",0,#MEN_MFR
  81. GTSubItem   0,#TG,2,1,2,"MagicWB","W",0,#MEN_MWB
  82. GTSubItem   0,#TG,2,1,3,"DFA","D",0,#MEN_DFA
  83.  
  84. running.w=1
  85. addedmisc.w=0
  86.  
  87. MUIApplicationTitle       "Menus"
  88. MUIApplicationVersion     "$VER: Menus 19.5 (12.02.97)"
  89. MUIApplicationCopyright   "(c)1994 by Stefan Stuntz"
  90. MUIApplicationAuthor      "Stefan Stuntz"
  91. MUIApplicationDescription "Demonstrates MUI's menu classes."
  92. MUIApplicationBase        "MENU"
  93.  
  94. MUICycle 1,"Settings disabled","Settings enabled"
  95. MUIAddObjVGroup 0,1
  96.  
  97.   MUICycle 2,"Hardware disabled","Hardware enabled"
  98.   MUICycle 3,"Software disabled","Software enabled"
  99.  
  100. MUIAddTags 4,#MUIA_Group_SameSize,1
  101. MUIAddObjsHGroup 4,2,3
  102. MUICreateHGroup 4
  103.  
  104. MUIAddObjVGroup 0,4
  105.  
  106. MUIMakeObject 5,#MUIO_HBar,4,0
  107. MUIAddObjVGroup 0,5
  108.  
  109.   MUIHSpace 6,0
  110.   MUIRadio  7,"","Amiga 1000","Amiga 2000","Amiga 3000","Amiga 4000"
  111.   MUIHSpace 8,0
  112.   MUIMakeObject 9,#MUIO_VBar,1,0
  113.   MUIHSpace 10,0
  114.  
  115.     MUILabel 13,"_MUI",0
  116.     MUICheckMark 14,0
  117.     MUILabel 15,"M_FR",0
  118.     MUICheckMark 16,0
  119.     MUILabel 17,"Magic_WB",0
  120.     MUICheckMark 18,0
  121.     MUILabel 19,"_DFA",0
  122.     MUICheckMark 20,0
  123.  
  124.   MUIAddTags 11,#MUIA_Group_Columns,2
  125.   MUIAddObjsVGroup 11,13,14,15,16,17,18,19,20
  126.   MUICreateVGroup 11
  127.  
  128.   MUIHSpace 12,0
  129.  
  130. For i=6 To 12:MUIAddObjHGroup 21,i:Next
  131. MUICreateHGroup 21
  132.  
  133. MUIAddObjVGroup 0,21
  134.  
  135. MUIMakeObject 22,#MUIO_HBar,4,0
  136. MUIAddObjVGroup 0,22
  137.  
  138.   MUISimpleButton 23,"_Add Misc Menu"
  139.   MUISimpleButton 24,"_Remove Misc Menu"
  140.   MUISimpleButton 25,"_Toggle Misc Titles"
  141.  
  142. MUIAddObjsHGroup 26,23,24,25
  143. MUIAddTags 26,#MUIA_Group_SameSize,1
  144. MUICreateHGroup 26
  145.  
  146. MUIAddObjVGroup 0,26
  147.  
  148. MUICreateVGroup 0
  149.  
  150. MUICreateMenu 27,0,0,#MEN_PROJECT,#MEN_EDIT,#MEN_SETTINGS
  151. MUISetMenu 30,27
  152.  
  153. MUICreateWindow 30,"Menus","MEN1",0
  154.  
  155. MUIAddSubWindow 30
  156.  
  157. If MUICreateApplication<>True Then End
  158.  
  159. MUIMakeObject 41,#MUIO_Menuitem,Null("Dynamic"),0,0,0
  160. MUIMakeObject 42,#MUIO_Menuitem,Null("Adding"),0,0,0
  161. MUIMakeObject 43,#MUIO_Menuitem,Null("Of"),0,0,0
  162. MUIMakeObject 44,#MUIO_Menuitem,Null("Items"),0,0,0
  163. MUIMakeObject 45,#MUIO_Menuitem,Null("Is"),0,0,0
  164. MUIMakeObject 46,#MUIO_Menuitem,Null("Possible"),0,#CHECKIT|#CHECKED|#MENUTOGGLE,0
  165.  
  166. MUIAddTags 40,#MUIA_Menu_Title,Null("Misc")
  167. MUIAddTags 40,#MUIA_Family_Child,MUIObjLoc(41)
  168. MUIAddTags 40,#MUIA_Family_Child,MUIObjLoc(42)
  169. MUIAddTags 40,#MUIA_Family_Child,MUIObjLoc(43)
  170. MUIAddTags 40,#MUIA_Family_Child,MUIObjLoc(44)
  171. MUIAddTags 40,#MUIA_Family_Child,MUIObjLoc(45)
  172. MUIAddTags 40,#MUIA_Family_Child,MUIObjLoc(46)
  173.  
  174. MUINewObject 40,"Menu.mui",0
  175.  
  176. MUIFindUData 32,27,#MEN_SETTINGS
  177. MUIFindUData 33,27,#MEN_EDIT
  178. MUIFindUData 34,27,#MEN_HARDWARE
  179. MUIFindUData 35,27,#MEN_SOFTWARE
  180.  
  181. MUISet 32,#MUIA_Menu_Enabled,0
  182.  
  183. MUIApplicationObj 31
  184.  
  185. MUINotify 1,#MUIA_Cycle_Active,#MUIV_EveryTime,32,#MUIM_Set,#MUIA_Menu_Enabled,#MUIV_TriggerValue
  186. MUINotify 2,#MUIA_Cycle_Active,#MUIV_EveryTime,34,#MUIM_Set,#MUIA_Menuitem_Enabled,#MUIV_TriggerValue
  187. MUINotify 3,#MUIA_Cycle_Active,#MUIV_EveryTime,35,#MUIM_Set,#MUIA_Menuitem_Enabled,#MUIV_TriggerValue
  188.  
  189. MUINotifyApp 23,#MUIA_Pressed,0,#ID_ADD
  190. MUINotifyApp 24,#MUIA_Pressed,0,#ID_REM
  191. MUINotifyApp 25,#MUIA_Pressed,0,#ID_TOG
  192.  
  193. MUINotify 31,#MUIA_Application_MenuAction,#MEN_A1000,7,#MUIM_Set,#MUIA_Radio_Active,0
  194. MUINotify 31,#MUIA_Application_MenuAction,#MEN_A2000,7,#MUIM_Set,#MUIA_Radio_Active,1
  195. MUINotify 31,#MUIA_Application_MenuAction,#MEN_A3000,7,#MUIM_Set,#MUIA_Radio_Active,2
  196. MUINotify 31,#MUIA_Application_MenuAction,#MEN_A4000,7,#MUIM_Set,#MUIA_Radio_Active,3
  197.  
  198. MUINotify 14,#MUIA_Selected,#MUIV_EveryTime,27,#MUIM_SetUData,#MEN_MUI,#MUIA_Menuitem_Checked,#MUIV_TriggerValue
  199. MUINotify 16,#MUIA_Selected,#MUIV_EveryTime,27,#MUIM_SetUData,#MEN_MFR,#MUIA_Menuitem_Checked,#MUIV_TriggerValue
  200. MUINotify 18,#MUIA_Selected,#MUIV_EveryTime,27,#MUIM_SetUData,#MEN_MWB,#MUIA_Menuitem_Checked,#MUIV_TriggerValue
  201. MUINotify 20,#MUIA_Selected,#MUIV_EveryTime,27,#MUIM_SetUData,#MEN_DFA,#MUIA_Menuitem_Checked,#MUIV_TriggerValue
  202.  
  203. MUINotifyApp 7,#MUIA_Radio_Active,#MUIV_EveryTime,#ID_RADIO
  204.  
  205. MUINotifyApp 30,#MUIA_Window_CloseRequest,1,-1
  206.  
  207. MUISet 24,#MUIA_Disabled,1
  208.  
  209. MUISet 14,#MUIA_UserData,#MEN_MUI
  210. MUISet 16,#MUIA_UserData,#MEN_MFR
  211. MUISet 18,#MUIA_UserData,#MEN_MWB
  212. MUISet 20,#MUIA_UserData,#MEN_DFA
  213.  
  214. MUIOpenWindow 30
  215.  
  216. Repeat
  217.   id.l=MUIWaitEvent
  218.   Select id
  219.   Case #MEN_QUIT
  220.     running=0
  221.   Case -1
  222.     running=0
  223.   Case #MEN_ABOUT
  224.     MUIRequest 30,0,"","OK","Some little about window."
  225.   Case #ID_ADD
  226.     MUISet 23,#MUIA_Disabled,1
  227.     MUISet 24,#MUIA_Disabled,0
  228.     MUIDoMethod 27,#MUIM_Family_Insert,MUIObjLoc(40),MUIObjLoc(33)
  229.     addedmisc=1
  230.   Case #ID_REM
  231.     MUISet 23,#MUIA_Disabled,0
  232.     MUISet 24,#MUIA_Disabled,1
  233.     MUIDoMethod 27,#MUIM_Family_Remove,MUIObjLoc(40)
  234.     addedmisc=0
  235.   Case #ID_TOG
  236.     *x.b=MUIGet(40,#MUIA_Menu_Title)
  237.     If Peek$(*x)<>"Misc"
  238.       MUISet 40,#MUIA_Menu_Title,Null("Misc")
  239.     Else
  240.       MUISet 40,#MUIA_Menu_Title,Null("Miscodil")
  241.     EndIf
  242.  
  243.     *x=MUIGet(46,#MUIA_Menuitem_Title)
  244.     If Peek$(*x)<>"Possible"
  245.       MUISet 46,#MUIA_Menuitem_Title,Null("Possible")
  246.     Else
  247.       MUISet 46,#MUIA_Menuitem_Title,Null("elbissoP")
  248.     EndIf
  249.   Case #MEN_MUI
  250.     MUIDoMethod 27,#MUIM_GetUData,id,#MUIA_Menuitem_Checked,&*x
  251.     MUIDoMethod 30,#MUIM_SetUData,id,#MUIA_Selected,*x
  252.   Case #MEN_MFR
  253.     MUIDoMethod 27,#MUIM_GetUData,id,#MUIA_Menuitem_Checked,&*x
  254.     MUIDoMethod 30,#MUIM_SetUData,id,#MUIA_Selected,*x
  255.   Case #MEN_MWB
  256.     MUIDoMethod 27,#MUIM_GetUData,id,#MUIA_Menuitem_Checked,&*x
  257.     MUIDoMethod 30,#MUIM_SetUData,id,#MUIA_Selected,*x
  258.   Case #MEN_DFA
  259.     MUIDoMethod 27,#MUIM_GetUData,id,#MUIA_Menuitem_Checked,&*x
  260.     MUIDoMethod 30,#MUIM_SetUData,id,#MUIA_Selected,*x
  261.   Case #ID_RADIO
  262.     *x=MUIGet(7,#MUIA_Radio_Active)
  263.     MUIDoMethod 34,#MUIM_SetUData,#MEN_A1000,#MUIA_Menuitem_Checked,(*x=0)
  264.     MUIDoMethod 34,#MUIM_SetUData,#MEN_A2000,#MUIA_Menuitem_Checked,(*x=1)
  265.     MUIDoMethod 34,#MUIM_SetUData,#MEN_A3000,#MUIA_Menuitem_Checked,(*x=2)
  266.     MUIDoMethod 34,#MUIM_SetUData,#MEN_A4000,#MUIA_Menuitem_Checked,(*x=3)
  267.   End Select
  268. Until running=0
  269.  
  270. MUICloseWindow 30
  271.  
  272. End
  273.